This invention relates generally to retrieval of an electronically compressed document and more particularly concerns a decompressor in which a decompressor is used for decoding CCITT codes and supplying decompressed data to a high speed printing engine.
With a growing need for faster printing engines, the need for faster decompressors is also growing. A fast printing engine needs a decompressor to provide a flow of decompressed data with a speed which matches the consumption rate of decompressed data by the printing engine. If the decompressor is slower than the print engine, then a gap will be shown on the printed document.
Usually, the codes, which represent the frequent color changes on the document, slow down the decompressor. Among all the codes of CCITT compression algorithm, vertical codes, pass codes, and some horizontal codes can potentially generate only one bit data. A sequence of these codes will result in worst case performance, which is the most frequent change of color. This effect slows down the flow of data to the printing engine.
To overcome the above problem, there is a great need for a decompressor capable of decompressing several or at least two codes, which can potentially generate one bit data, in parallel. If two codes are decoded in parallel, even if both codes generate one bit decompressed data, the output will be guaranteed to have two bits of decompressed data. The look ahead logic, which is another enhancement to the above problem, finds the positions of color changes for two next codes to be decoded on the next cycle, while the current codes are in the process of decoding. The combination of the look ahead logic with the short and long channel decoders allows the decoders to decode one or two codes per each clock cycle, which considerably increases the decoding speed.
Further advantages of the invention will become apparent as the following description proceeds.